chore(build) Add support for building with RHEL 9+ / Fedora 38+ / tested on Fedora 44#9728
Open
rahst12 wants to merge 3 commits into
Open
chore(build) Add support for building with RHEL 9+ / Fedora 38+ / tested on Fedora 44#9728rahst12 wants to merge 3 commits into
rahst12 wants to merge 3 commits into
Conversation
Author
|
I'm looking for feedback on the fedora 44 supports. What's needed to get this going? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Podman / Fedora 44 / RHEL 9+ support for
make testNOTE: RedHat 8 was End of Life May 2024.
Docker CE is no longer installable or functional on Fedora 38+ and RHEL 9+ from the official
Docker repository. Podman (with
podman-dockerandpodman-compose) is the supportedreplacement on those platforms. This release makes the entire test infrastructure
runtime-agnostic so that
make testworks with either Docker or Podman transparently.Changes by area:
testutil/runtime.go(new): central runtime detection; auto-detects whether Docker orPodman is in use (including
podman-dockershims), setsDOCKER_HOSTto the Podman socketso the Docker SDK can communicate with it, and exposes
ContainerRuntime()andContainerComposeCmdPrefix()helpers used everywhere elset/t.goandtestutil/bulk.go: all hardcodeddocker compose --compatibilityinvocations replaced with
ContainerComposeCmdPrefix(); alldocker logs,docker cp, anddocker execcalls replaced withContainerRuntime()contrib/Dockerfile: pre-creates all/data/zero*,/data/alpha*,/data/dg1, and/data/dg0.1directories; Podman'scrunOCI runtime does not auto-create a container'sworking_dirat startup (unlike Docker'srunc), which left containers stuck in "Created"state
t/Makefile: newinstall-deps-docker-linux-dnftarget installspodman podman-docker podman-composeand enables the Podman socket instead of attempting thebroken Docker CE install path on Fedora/RHEL
t/scripts/check-deps-docker.sh: rewritten to detect and validate Podman ondnf-based systems instead of requiring Docker CEt/scripts/check-docker-available-memory.sh: reads/proc/meminfodirectly on Linux(works for both Docker and Podman) rather than calling
docker infoMakefile(root): new$(DOCKER)variable falls back topodmanwhendockerisabsent, used for image build targets
Fixed
/usr/lib64so a dnf-installedjemalloc-develis found onFedora/RHEL multilib systems
--disable-cxxto avoid thestd::__throw_bad_allocbuild failure on GCC 13+ (e.g. Fedora 44 / GCC 15); dgraph only linksjemalloc's C API, so the C++ layer is not needed
&&(was;) so a failed compile no longerfalls through to
make install, and clear any stale/tmp/jemalloc-tempbefore rebuilding.repofile instead ofdnf config-manager --add-repo, which was removed in DNF5 (Fedora 41+) and brokemake setupon FedoraAdded
contrib/smoke-test.shto bring up a local zero+alpha and verifyschema/mutation/query against a freshly built binary
Changed
linux-dependencynow auto-detects the package manager (apt/dnf/pacman) and installs theC/C++ toolchain + protobuf-compiler, so build prerequisites work on Fedora/RHEL and Arch in
addition to Debian/Ubuntu
Docs
Checklist
Conventional Commits syntax, leading
with
fix:,feat:,chore:,ci:, etc.docs repo staged and linked here. This process can
be simplified by going to the public docs site and clicking the
"Edit this page" button at the bottom of page(s) relevant to your changes. Ensure that you
indicate in the PR that this is an unreleased feature so that it does not get merged into
the main docs prematurely.
Instructions
Conventional Commits syntax, leading
with
fix:,feat:,chore:,ci:, etc. Ensure any breaking changes are appropriately markedwith a
!. For instance,feat(dql)!: Remove the foobar funcwould indicate that this is abreaking change to the DQL syntax.
link to the bug.
[x]syntax.back and check the box later.
Instructionsline and everything below it, to indicate you have read and arefollowing these instructions. 🙂
Thank you for your contribution to Dgraph!